<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 数组去重
        // let arr = [1, 1, 1, 2, 5, 7, 7, 7, 7, 1, 3];

        // 第一轮循环：i = 0, 删除1个数
        // 第二轮循环：i = 1


        // 1. 创建一个新的数组
        // let newArr = [];
        // for (let value of arr) {
        //     if (!newArr.includes(value)) {
        //         newArr.push(value);
        //     }
        // }
        // console.log(newArr);

        // 2. 从原数组中删除重复的数
        // 获取数据在数组中第一次和最后一次出现的下标
        // 下标相同，说明该数据不重复   
        // for (let i = 0; i < arr.length; i++) {
        //     // arr[i]第一次出现的下标
        //     let firstIndex = arr.indexOf(arr[i])
        //     // arr[i]最后一次出现的下标
        //     let lastIndex = arr.lastIndexOf(arr[i]);

        //     if (firstIndex != lastIndex) {
        //         // 第一次出现的下标不等于最后一次出现的下标，说明重复
        //         arr.splice(i, 1);
        //         i--;
        //     }
        // }
        // console.log(arr);

        // let arr = [1, 1, 1, 2, 5, 7, 7, 7, 7, 1, 3];
        // const newArr = arr.filter((item, index) => arr.indexOf(item) === index)
        // console.log(newArr);


        let arr3 = [1, 1, 1, 2, 5, 7, 7, 7, 7, 1, 3];
        const newArr = arr3.reduce((prev, item) => {
            if (!prev.includes(item)) {
                prev.push(item);
            }
            return prev;
        }, [])
        console.log(newArr);







    </script>
</body>

</html>